/**
 * Description:
 * Class Name:NumberFormatTest
 * Date:2022/2/23 16:08
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第7章_Java基础类库._7_7_Java11改进的国际化与格式化._7_7_7_使用NumberFormat格式化数字;

import java.util.Locale;
import java.text.NumberFormat;

public class NumberFormatTest {
    public static void main(String[] args) {
        // 需要被格式化的数字
        var db = 1234000.567;
        // 创建4个Locale
        Locale[] locales = {Locale.CHINA, Locale.JAPAN, Locale.GERMANY, Locale.US};
        NumberFormat[] nf = new NumberFormat[12];       // 预留12个位子
        // 为上面4个Locale创建12个NumberFormat对象
        // 每个Locale分别有通用数值格式器、百分数格式器、货币格式器
        for (int i = 0; i < locales.length; i++) {
            nf[i * 3] = NumberFormat.getNumberInstance(locales[i]);
            nf[i * 3 + 1] = NumberFormat.getPercentInstance(locales[i]);
            nf[i * 3 + 2] = NumberFormat.getCurrencyInstance(locales[i]);
        }
        for (int i = 0; i < locales.length; i++) {
            var tip = i == 0 ? "-----中国的格式-------" : i == 1 ? "-----日本的格式-------" : i == 2 ? "-----德国的格式-------" : "-----美国的格式-------";
            System.out.println(tip);

            System.out.println("通用数值格式：" + nf[i * 3].format(db));
            System.out.println("百分比数值格式：" + nf[i * 3 + 1].format(db));
            System.out.println("货币数值格式：" + nf[i * 3 + 2].format(db));
        }
    }
}
